// function xq() {
//   setTimeout(() => {
//     console.log('章总相亲了');
//   }, 2000)
// }

// function marry() {
//   console.log('章总结婚了');
// }

// xq()
// marry()



// function xq() {
//   //resolve是执行成功的意思，reject是执行失败的意思
//   return new Promise((resolve, reject) => {
//     setTimeout(() => {
//       console.log('章总相亲了');
//       resolve('相亲顺利')//调用resolve会认为promise是成功的，则执行then里面的代码，resolve得放在这种定时函数中。不写resolve，then中的回调函数不会执行
//     }, 2000)
//   })
// }

// function marry() {
//   console.log('章总结婚了');
// }

// //resolve中传入的值可以被then中的回调函数接收到，就是res
// //then会等前面函数执行成功，要有resolve成功后才会执行then中的代码
// xq().then((res) => {
//   console.log(res);
//   marry()
// })


function xq() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log('章总相亲了');
      resolve('相亲顺利')//只能放在定时器里面
    }, 2000)
  })
}

function marry() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log('章总结婚了');
      resolve('dk')
    }, 1000)
    
  })
}

function baby() {
  console.log('小章出生了');
}

// xq().then((res) => {
//   console.log(res);
//   marry().then(() => {
//     baby()
//   })
// })


//下面是then的链式调用
xq()
.then((res) => {
  console.log(res);
  return marry()//返回的是Promise实例，所以可以继续then
})
.then((res) => {
  console.log(res);
  baby()
})
